The present invention relates generally to computing systems, and more specifically, to computer addressing techniques.
In today's computer systems, the system memory is managed by the operating system, and is allocated to different software applications as needed. The different software applications may run in one or more partitions, and the one or more partitions may run different operating systems (OSs). Virtual memory techniques may be used in such a computer system to share the physical memory of the computing system among many processes and applications. The software applications therefore deal with effective addresses in a virtual memory space, which allow the applications to read, write, and execute when required, without being concerned with the actual physical memory locations where the operations are taking place. The applications rely on the operating system that underlies each application to perform the mapping from the effective address used by the application to a physical address in the computer memory. Address translation is the mechanism by which effective addresses that reference virtual memory are translated into real memory addresses. Address translation is a complex procedure that, if not implemented well, can end up on the critical path that determines the clock cycle of the processor.
When the CPU requests an effective address, the system first checks an effective-to-real address translation (ERAT) cache to determine a real address corresponding to the effective address. If the effective address is not in the ERAT cache, various other caches, including a segment lookaside buffer (SLB) and a translation lookaside buffer (TLB) may be checked to determine the real address corresponding to the effective address. The ERAT cache, SLB, and TLB hold data regarding translations for recently used effective addresses and are searched to provide necessary information for the address translation process. However, if the effective address is in none of these caches, an additional page table search must be performed in order to determine the correct translation of the effective address.